package activity;

import java.util.Date;

import model.Todo;
import model.TodoDate;
import android.app.Activity;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;

import com.example.apptodo.R;

import db.SimpleDatabaseHelper;
import dialog.TodoDateDialog;
import dialog.TodoTimeDialog;

public class AddActivity extends Activity 
						 implements OnDateSetListener, 
						 			OnTimeSetListener {

	private EditText newText = null;
	private TextView textDate = null;
	private TextView textTime = null;
	private Todo todo = null;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_add);
		//	ウィジェットの参照を取得
		newText = (EditText)findViewById(R.id.newText);
		textDate = (TextView)findViewById(R.id.textDate);
		textTime = (TextView)findViewById(R.id.textTime);
		//	現在の日付と時刻を表示（規定値）
		textDate.setText(TodoDate.getDateString());
		textTime.setText(TodoDate.getTimeString());
		//	入力データを格納するためにオブジェクトを生成する
		todo = new Todo(new Date());
	}
	/**
	 * 登録ボタンがクリックされたときに呼び出される
	 * @param view	登録ボタン
	 */
	public void btnRegist_onClick(View view) {
		//	入力文字列を取り出す
		String str = newText.getText().toString();
		//	入力されていればテーブルに追加する
		if (str != null && str.length() > 0) {
			todo.setAction(str);

			SimpleDatabaseHelper helper = new SimpleDatabaseHelper(this);
			//	テーブルに登録する
			helper.insert(todo);
			//	画面を閉じる
			finish();
		}
		else {
			//	警告ダイアログを表示する
			Toast.makeText(
					this, 
					"入力してください", 
					Toast.LENGTH_LONG).show();
		}
	}
	
	public void date_onClick(View view) {
		Log.i("AddActivity", "date_onClick");
		
		TodoDateDialog dialog = 
				new TodoDateDialog(this, this, todo);
		dialog.show();
	}
	
	public void time_onClick(View view) {
		Log.i("AddActivity", "date_onClick");
		
		TodoTimeDialog dialog = 
				new TodoTimeDialog(this, this, todo);
		dialog.show();
	}

	@Override
	public void onDateSet(
			DatePicker view, 
			int year, 
			int monthOfYear,
			int dayOfMonth) {
		todo.setYear(year);
		todo.setMonth(monthOfYear);
		todo.setDay(dayOfMonth);
		todo.setTime();
		//	日付を再表示
		textDate.setText(TodoDate.getDateString(todo));
	}

	@Override
	public void onTimeSet(
			TimePicker view, 
			int hourOfDay, 
			int minute) {
		todo.setHour(hourOfDay);
		todo.setMinute(minute);
		todo.setTime();
		//	時刻を再表示
		textTime.setText(TodoDate.getTimeString(todo));
	}
}
